package com.yangyang.utils;

import sun.net.www.content.image.gif;
import sun.net.www.content.image.png;

import java.io.File;

/**
 * 文件工具类
 * 
 * @author lxh
 *
 */
public class FileUtil {

	// 1.获取用户当前所在的目录的路径
	public static String getUserDir() {
		String property = System.getProperty("user.dir");
		return property;
	}

	// 2.获取操作系统目录的路径
	public static String getUserHomeDir() {
		return System.getProperty("user.home");
	}

	// 3.获取操作系统临时目录
	public static String getTmpDir() {
		return System.getProperty("java.io.tmpdir");
	}

	// 4.获取一个文件的根路径
	public static File getRoot(File file) {

		// 获取文件名称
		String name = file.getPath();

		// 数据处理
		String substring = name.substring(0, name.lastIndexOf(":") + 1);

		return new File(substring);
	}

	// 5-1 获取文件的扩展名
	public static String getFileExtensions(String name) {

		// 获取文件路径
		int i = name.lastIndexOf(".");
		if (i < 0) {
			return "文件上传不正确";
		}
		return name.substring(name.lastIndexOf("."));
	}

	// 5-2 获取文件的扩展名
	public static String getFileExtensions(File file) {
		// 获取文件名称
		String name = file.getName();
		return getFileExtensions(name);
	}

	// 6.获取对应单位大小的文件
	public static String getFileSize(File file, FileSizeUnit unit) {

		long length = file.length();

		long ram = length / unit.getCode();

		return ram + unit.getName();
	}

	// 7.获取所在磁盘的总空间
	public static String getTotalSpace(File file, FileSizeUnit unit) {

		// 获取文件所在磁盘
		File f = getRoot(file);

		long totalSpace = f.getTotalSpace();

		return totalSpace / unit.getCode() + unit.getName();

	}

	// 8.获取磁盘的剩余空间
	public static String getFreeSpace(File file, FileSizeUnit unit) {

		// 获取文件所在磁盘
		File f = getRoot(file);

		long freeSpace = f.getFreeSpace();

		return freeSpace / unit.getCode() + unit.getName();

	}

	// 9.递归删除文件
	public static void deletes(File file) {
		
		File[] files = file.listFiles();
		if (files != null && files.length > 0) {
			
			for (File f : files) {
				
				if (f.isFile()) { // 判断是否为具体某个文件
					f.delete();
				}else {
					deletes(f);
				}
			}
		}
		// 删除空文件
		file.delete();
	}
	
	

	//判断是否为图片
	public static  Boolean isPicture(String fileName){
		boolean flag =false;
		if(!StringUtil.hasText(fileName)){
			flag = false;
		}
		String[]   imgArr = {".bmp", ".jpg", ".png", ".tif", ".gif",".pcx", ".tga", ".exif", ".fpx", ".svg",".psd", ".cdr", ".pcd", ".dxf", ".ufo",".eps", ".ai", ".raw", ".WMF", ".webp"};
		for (String s : imgArr) {
			if(s.equals(fileName)){
				flag= true;
			break;
			}
		}
		return  flag;
	}

	
	
	
}
